package com.sz.common.base.dao.ext;

import com.sz.common.base.dao.schema.TableSchema;
import com.sz.common.base.entity.VersionEntity;

import java.util.Date;
import java.util.Map;

/**
 * Package: com.sz.common.base.dao.ext <br>
 * Function: TODO: ADD FUNCTION <br>
 * Author: Charles. <br>
 * Date: 2017-02-24 13:23:00.
 */
public interface EntityVersionDao {

    /**
     * @param tableSchema
     * @param entity
     */
    void insertEntity(TableSchema tableSchema, VersionEntity entity);

    /**
     * @param tableSchema
     * @param entity
     */
    void updateEntity(TableSchema tableSchema, VersionEntity entity);

    /**
     * @param uid
     */
    void deleteByUid(TableSchema tableSchema, String uid);

    void deleteByUid(TableSchema tableSchema, String uid, Date date);

    /**
     * @param uid
     * @param date
     * @param bizFields
     */
    void deleteByUid(TableSchema tableSchema, String uid, Date date, Map<String, Object> bizFields);


}
